<iframe src="https://xeval-backend.upc.ximdex.net/evaluation?assessment_user_id=171&channel=web&target=mhe&theme=mhe_2023&reload=false"
  title="preview" frameborder="0" width="95%" height="95%" id="iframePreview"
  style="border: 1px solid black; margin-left: -1px;" onload="
    (async function() {
 
      async function getIframeUserId() {
        try {
          const response = await fetch('https://xeval-backend.upc.ximdex.net/api/v1.0/user-assessments/preview/248');
          const data = await response.json();
          if (data ) {
            return data;
          }
          return false;
        } catch (error) {
          return false;
        }
      }

      function updateIframeWithNewUserId(newUserId) {
        if (!newUserId) return false;
        const iframe = document.getElementById('iframePreview');
        const currentSrc = iframe.src;
        let newSrc = currentSrc;
        const typeParam = 'assessment_user_id';
        
        if (currentSrc.includes(typeParam + '=')) {
          newSrc = currentSrc.replace(
            new RegExp(typeParam + '=[^&]*'),
            typeParam + '=' + newUserId
          );
        } else {
          const separator = currentSrc.includes('?') ? '&' : '?';
          newSrc = currentSrc + separator + typeParam + '=' + newUserId;
        }
        newSrc = newSrc.replace(/reload=false/, 'reload=true');
        
        iframe.src = newSrc;
        
        return true;
      }
      
      try {
        const iframe = document.getElementById('iframePreview');
      const iframeParams = new URLSearchParams(iframe.src.split('?')[1]);
      const hasUpdatedOnce = iframeParams.get('reload');
        if (hasUpdatedOnce === 'false') {
          console.log('Getting user ID...')
          const response = await getIframeUserId();
          console.log(response, 'API response');
          if (response) {
            updateIframeWithNewUserId(response);
          } else {
            console.error('Could not extract user ID from response:', response);
          }
        }
      } catch (error) {
        console.error('Error in onload handler:', error);
      }
    })()
  "></iframe>
